Spread.Viewsでは、行の高さを自動調整できます。autoRowHeightプロパティをtrueに設定すると、行内のデータに合わせ、行の高さが動的に計算されます。
グリッド内で行の高さを自動調整するには、次の手順を実行します。
サンプルコード
- DIVタグを使用して、列定義、およびrowTemplate変数の定義を追加します。
var timeFormatter = 'HH:mmtt'; var presenter = '<div class="container">' + '<div class="photo"><img src={{=it.photo}} /></div>' + '<div class="name">{{=it.name}}</div>' + '</div>'; var columns = [{ id: 'photo', caption: 'Photo', dataField: 'photo' }, { id: 'name', caption: 'Name', dataField: 'name' }, { id: 'income', caption: 'Income', dataField: 'income', format: '$#,###' }, { id: 'info', dataField: 'photo,name', presenter: presenter }]; var rowTemplate = '<div class="rowDiv" style ="width:100%;height:100%;">' + '<div class="productDiv" data-column="info"></div>' + '<div class="incomeDiv c2"> <div class="container"> <span class="incomeSpan" data-column="income"></span> </div> </div>' + '</div>';
DIVタグのグリッドIDを呼び出してコードを初期化し、autoRowHeightプロパティをtrueに設定します。これで、行内のデータに合わせ、行の高さがグリッドによって自動計算されます。
var dataView = new GC.Spread.Views.DataView(document.getElementById('grid1'), data, columns, new GC.Spread.Views.Plugins.GridLayout({ autoRowHeight: true, showColHeader: false, showRowHeader: false, selectionMode: 'none', rowTemplate: rowTemplate })); refreshTotalPrice(); //focus data.view by default document.querySelector('#grid1').focus();
合計金額を計算し、Excel同様の書式を列に適用するrefreshTotalPrice関数を追加します。
function refreshTotalPrice() { var sum = dataView.data.evaluate('sum([income])'); var excelFormatter = new GC.Spread.Formatter.GeneralFormatter('#,###'); sum = excelFormatter.format(sum); var count = dataView.data.evaluate('count([income])'); var totalPriceSpan = document.getElementById('total'); totalPriceSpan.innerHTML = '<div class="product-total-inner">Total (' + count + ' items): ' + '<span>$' + sum + '</span></div>'; }